Soru & Cevap

Butona tıklanınca arkaplan renginin sürekli değişmesi

28.02.2016 - 10:52

Başlıktada belirttiğim gibi butona basılınca arkaplan renginin sürekli olarak değişmesini istiyorum. Butona basılma serbest bırakılıncada arkaplan rengi beyaz olucak, kodlar ,herşey tam ama tam istediğim gibi çalışmıyor. Butona basılınca sadece bir tane renk geliyor ve öyle duruyor. Benim istediğim butona basılınca sürekli renk değişmesi. Şimdiden herkese teşekkürler.

 

bbc.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {


                switch(event.getAction())
                {
                case MotionEvent.ACTION_DOWN:



                    for(int i=0; i<dizi.length; i++)
                    {
                    int a=dizi[i]=ran.nextInt(3);

                        if(a==0)
                        {
                            r.setBackgroundColor(Color.RED);
                        };
                        if(a==1){
                            r.setBackgroundColor(Color.BLACK);
                        }
                        if(a==2){
                            r.setBackgroundColor(Color.BLUE);
                        }
                    }


                break;

                case MotionEvent.ACTION_UP:
                    r.setBackgroundColor(Color.WHITE);
                }   

                return false;
            }
        });

 

194 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-64306-1456244789.jpg
oğuzarı
28.02.2016 - 02:08

neden for döngüsü kullandığını anlamadım, kodlama dilini bilmiyorum ama. şu şekilde kodlarsan cözüm olabilir, "her butona tıklandığında 0 ile 3 arası bir sayı seç, eğer 0 sa kırmızı, 1 se siyah ve 2se mavi olsun" diye kodlayabilirsin. dizi.length sadece 1 öge içerdiği için program calısmayı durduruyor. ama en üste dizi[10] olarak tanımlarsan 10 tıklamaya kadar sana cevap vericektir.

Tam olarak özetlemek gerekirse, for döngüsü kullanma;

Butona her tıklandığında random bir sayı seçsin, ve o sayıya göre rengi degiştirsin. bu kadar

Maroon
28.02.2016 - 11:16
Dediğiniz mantıklı lakin ben butona basılı tutulduğu süre boyunca arkaplanın sürekli değişmesini istiyorum o yüzden for döngüsü kullandım. Özetlersem = butona basılı tutulduğunda sürekli renk değişicek butona basılma kesilince renk beyaza dönücek. Ama dediğiniz gibi random sadece 1 sayı döndürüyor ve renkler değişmiyor. While döngüsü ile sonsuz bir döngü yapmaya çalıştım fakat bu seferde case'in break'i hata verdi.
picture-26087-1505748298.jpg
nonemre
28.02.2016 - 01:52

Bence bir timer koyup öyle halledebilirsin butona tıklayınca timer başlar timerda arka planı değiştirirsin butona tekrar basıldığında timer durur arka planı beyaz yaparsın.

Maroon
28.02.2016 - 11:14
Timer konusunu biraz daha açarsanız çok güzel olur. Aslına bakarsanız baktım önceden ama pek bi sonuç çıkaramadım.
Emre Akbaki
28.02.2016 - 11:41
Tabi ki şöyle timer ile ilgili örneklere internetten bakabilirsin fakat biraz karışık bir iş timer olayı.Ben senin için şöyle bir örnek buldum istediğin aynı şeyi yapıyor buna ek olarak sen durduğunda backgroundu beyaz yaparsın umarım işine yarar.Eğer yine yapamazsan tekrar yaz yardımcı olurum. http://stackoverflow.com/questions/24219867/background-colour-change-by-timer